1
重新定義系統程式設計中的物件導向
AI034Lesson 17
00:00

在 Rust 中重新定義物件導向,意味著從僵化的類別層次結構轉向以 資料與行為分離為核心的模型。雖然傳統的系統語言依賴於複雜的物件樹,但 Rust 借由使用 特徵(traits) 和模組來實現物件導向設計目標——封裝與多型,同時優先確保記憶體安全且無執行時開銷。

1. 挑戰層次結構

Rust 明確避免實作繼承,以防止 脆弱基礎類別 問題。相反地,它傾向於組合與 特徵(Traits) 來定義跨不同類型的共享行為。這裡的「物件」是資料(structs)與程序(impl blocks)的組合,且在編譯時期就已驗證。

基礎類別傳統層次結構特徵(行為)Rust 組合「物件導向程式是由物件所構成。一個物件會包裝資料與操作該資料的程序。」— GoF,第 491 頁

2. 並行運算與狀態即類型

Rust 主要透過標準函式庫(Send/Sync 特徵)而非語言核心處理並行運算。為了最大化安全性, 狀態即類型演算法 將不同的狀態編碼為不同的類型。狀態轉換會回傳新的實例,將邏輯從執行時的 if 判斷語句移至編譯時期的要求。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>